package com.pms.mapper;

import com.pms.pojo.SysPost;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface SysPostMapper {
    /**
     * 添加岗位记录
     * @param sysPost
     * @return
     */
    @Insert("insert into sys_post(post_code,post_name,post_level,salary,sort_val,status,create_by,create_time,update_by,update_time) values(#{postCode},#{postName},#{postLevel},#{salary},#{sortVal},#{status},#{createBy},#{createTime},#{updateBy},#{updateTime})")
    int insert(SysPost sysPost);

    /**
     * 根据ID删除岗位记录
     * @param id
     * @return
     */
    @Delete("delete from sys_post where id = #{id}")
    int deleteById(@Param("id") Integer id);

    /**
     * 更新岗位记录
     * @param sysPost
     * @return
     */
    @Update("update sys_post set post_code = #{postCode},post_name = #{postName},post_level = #{postLevel},salary = #{salary},sort_val = #{sortVal},status = #{status},update_by = #{updateBy},update_time =#{updateTime} where id = #{id}")
    int update(SysPost sysPost);

    /**
     * 根据ID查询岗位记录
     * @param id
     * @return
     */
    @Select("select * from sys_post where id = #{id}")
    SysPost selectById(@Param("id") Integer id);

    /**
     * 统计符合条件的记录数
     * @param postName 岗位名称
     * @param postCode 岗位编码
     * @return 总记录数
     */
    Long count(@Param("postName") String postName, @Param("postCode") String postCode);

    /**
     * 分页查询岗位
     * @param start 起始索引
     * @param pageSize 每页显示条数
     * @param postName 岗位名称
     * @param postCode 岗位编码
     * @return 当前页数据
     */
    List<SysPost> page(@Param("start") Integer start,
                       @Param("pageSize") Integer pageSize,
                       @Param("postName") String postName,
                       @Param("postCode") String postCode);
}
